
package Serveur;

import Client.I_ChatClient;
import java.rmi.RemoteException;
import java.util.ArrayList;
import java.util.LinkedList;


public interface I_chat extends I_drive {
    
    /** Envoi les messages du clients au serveur
      * @param message : le message a envoyé
      * @param auteur : personne auteur des actions
      * @param mode : type d'action sur le chat
      * @throws RemoteException 
    */
    public String envoyerMessage(String message, String auteur, char mode) throws RemoteException;
    
    /** Retourne une liste de tous les clients qui sont connectés
      *@return liste chainé contenant les clients connectés
      * @throws RemoteException 
    */
    public LinkedList<I_ChatClient> clientsDisponibles() throws RemoteException;
    
    /** Envoi des messages privés à un client spécifique
      * @param message : le message envoyé au chat
      * @param exp : personne auteur du message
      * @param des : personne destinataire du message
      * @param mode : type d'action sur le chat
      * @throws RemoteException 
      */
    public void messagePrive(String message, String exp, String des, char mode) throws RemoteException;
    
    /** Retourne l'historique du chat
     * @return : l'historique du chat
     * @throws RemoteException 
     */
    public ArrayList<String> retourHistorique() throws RemoteException;
}
